package com.lancoo.edu.platform.operation.backupRestore.constant;

import lombok.AllArgsConstructor;
import lombok.Getter;

import java.util.Objects;


/**
 * 数据库类型（路径）枚举
 * @author lzh
 * @date 2024/2/19 16:41
 */
@Getter
@AllArgsConstructor
public enum DataBaseTypeEnum {

    /**
     * mysql数据库--windows环境
     */
    MYSQL_WINDOWS("mysql", "windows", "C:/Program Files/MySql57/mysqlx64/bin/"),
    // MYSQL_WINDOWS("mysql","windows","D:/soft/MySQL/MySQL Server 8.0/bin/"),

    /**
     * mysql数据库--linux环境
     */
    MYSQL_LINUX("mysql", "linux", "/usr/bin/"),

    /**
     * 达梦数据库
     */
    DM("dm", "linux", ""),

    /**
     * oceanBase数据库
     */
    OCEAN_BASE("oceanBase", "linux", "/u01/mysql/bin/");


    /**
     * 数据库类型
     */
    private final String databaseType;

    /**
     * 系统环境
     */
    private final String systemEnv;

    /**
     * 数据库bin目录
     */
    private final String databaseDump;


    /**
     * 获取对应枚举
     *
     * @param databaseType 数据库类型
     * @param systemEnv    系统环境
     * @return 枚举
     */
    public static DataBaseTypeEnum getByType(String databaseType, String systemEnv) {
        for (DataBaseTypeEnum dataBaseTypeEnum : values()) {
            if (Objects.equals(databaseType, dataBaseTypeEnum.getDatabaseType()) && Objects.equals(systemEnv, dataBaseTypeEnum.getSystemEnv())) {
                return dataBaseTypeEnum;
            }
        }
        return MYSQL_WINDOWS;
    }
}
